<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>My Project: simple_schedule Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">My Project
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classsimple__schedule-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">simple_schedule Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for simple_schedule:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classsimple__schedule.png" usemap="#simple_schedule_map" alt=""/>
  <map id="simple_schedule_map" name="simple_schedule_map">
<area href="class_schedule.html" alt="Schedule" shape="rect" coords="0,0,105,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsimple__schedule_1_1thread__data.html">thread_data</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsimple__schedule_1_1thread__info__t.html">thread_info_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a25bafe4199780c7abda6a9df3a599d88"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsimple__schedule.html#a25bafe4199780c7abda6a9df3a599d88">simple_schedule</a> (<a class="el" href="class_map.html">Map</a> &amp;map)</td></tr>
<tr class="separator:a25bafe4199780c7abda6a9df3a599d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad60a7608111e011d0c04f6ac566cfd8c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsimple__schedule.html#ad60a7608111e011d0c04f6ac566cfd8c">start</a> ()</td></tr>
<tr class="separator:ad60a7608111e011d0c04f6ac566cfd8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_schedule"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_schedule')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_schedule.html">Schedule</a></td></tr>
<tr class="memitem:ad88c01f0ebf0c2f3bfa3ca2fe7ca3e8f inherit pub_methods_class_schedule"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_schedule.html#ad88c01f0ebf0c2f3bfa3ca2fe7ca3e8f">Schedule</a> (<a class="el" href="class_map.html">Map</a> &amp;map)</td></tr>
<tr class="separator:ad88c01f0ebf0c2f3bfa3ca2fe7ca3e8f inherit pub_methods_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4806b985197d35c00b9e707c0ed87998 inherit pub_methods_class_schedule"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_schedule.html#a4806b985197d35c00b9e707c0ed87998">~Schedule</a> ()</td></tr>
<tr class="separator:a4806b985197d35c00b9e707c0ed87998 inherit pub_methods_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5180032a0c2135507859ccf2a4eea1ab inherit pub_methods_class_schedule"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_schedule.html#a5180032a0c2135507859ccf2a4eea1ab">init</a> ()</td></tr>
<tr class="separator:a5180032a0c2135507859ccf2a4eea1ab inherit pub_methods_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a722f6e76c8b8dc67874d9974b6d641 inherit pub_methods_class_schedule"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_schedule.html#a6a722f6e76c8b8dc67874d9974b6d641">scheduleKernel</a> (<a class="el" href="classraft_1_1kernel.html">raft::kernel</a> *const kernel)</td></tr>
<tr class="separator:a6a722f6e76c8b8dc67874d9974b6d641 inherit pub_methods_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:aafebb0cc13b4539387790ff54ea40830"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsimple__schedule.html#aafebb0cc13b4539387790ff54ea40830">handleSchedule</a> (<a class="el" href="classraft_1_1kernel.html">raft::kernel</a> *const kernel)</td></tr>
<tr class="separator:aafebb0cc13b4539387790ff54ea40830"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr class="memitem:a4fac873aedbc372a9a008cf02b30c048"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4fac873aedbc372a9a008cf02b30c048"></a>
static void *&#160;</td><td class="memItemRight" valign="bottom"><b>simple_run</b> (void *data)</td></tr>
<tr class="separator:a4fac873aedbc372a9a008cf02b30c048"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_static_methods_class_schedule"><td colspan="2" onclick="javascript:toggleInherit('pro_static_methods_class_schedule')"><img src="closed.png" alt="-"/>&#160;Static Protected Member Functions inherited from <a class="el" href="class_schedule.html">Schedule</a></td></tr>
<tr class="memitem:a85de3d48407aa378ccc86a4a4206b32a inherit pro_static_methods_class_schedule"><td class="memItemLeft" align="right" valign="top">static raft::kstatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_schedule.html#a85de3d48407aa378ccc86a4a4206b32a">checkSystemSignal</a> (<a class="el" href="classraft_1_1kernel.html">raft::kernel</a> *const kernel, void *data, <a class="el" href="class_system_signal_handler.html">SystemSignalHandler</a> &amp;<a class="el" href="class_schedule.html#ad248e99611a87776fb411836cd46a603">handlers</a>)</td></tr>
<tr class="separator:a85de3d48407aa378ccc86a4a4206b32a inherit pro_static_methods_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5167d622689a34ea5f3a065304295521 inherit pro_static_methods_class_schedule"><td class="memItemLeft" align="right" valign="top">static raft::kstatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_schedule.html#a5167d622689a34ea5f3a065304295521">quitHandler</a> (FIFO &amp;fifo, <a class="el" href="classraft_1_1kernel.html">raft::kernel</a> *kernel, const raft::signal signal, void *data)</td></tr>
<tr class="separator:a5167d622689a34ea5f3a065304295521 inherit pro_static_methods_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bf10fd9419c58849d7be98336dc0aff inherit pro_static_methods_class_schedule"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3bf10fd9419c58849d7be98336dc0aff"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>invalidateOutputPorts</b> (<a class="el" href="classraft_1_1kernel.html">raft::kernel</a> *kernel)</td></tr>
<tr class="separator:a3bf10fd9419c58849d7be98336dc0aff inherit pro_static_methods_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac23de3dd63554401fd0d8d23b60eecfa inherit pro_static_methods_class_schedule"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_schedule.html#ac23de3dd63554401fd0d8d23b60eecfa">kernelHasInputData</a> (<a class="el" href="classraft_1_1kernel.html">raft::kernel</a> *kernel)</td></tr>
<tr class="separator:ac23de3dd63554401fd0d8d23b60eecfa inherit pro_static_methods_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e2035e0c0666054f8401ad2b3792854 inherit pro_static_methods_class_schedule"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_schedule.html#a2e2035e0c0666054f8401ad2b3792854">kernelHasNoInputPorts</a> (<a class="el" href="classraft_1_1kernel.html">raft::kernel</a> *kernel)</td></tr>
<tr class="separator:a2e2035e0c0666054f8401ad2b3792854 inherit pro_static_methods_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:afb23a2c4ff29959b3f43d5802ac76c79"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb23a2c4ff29959b3f43d5802ac76c79"></a>
pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><b>thread_map_mutex</b></td></tr>
<tr class="separator:afb23a2c4ff29959b3f43d5802ac76c79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c6f1b93365dc324a72c467765ffef86"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1c6f1b93365dc324a72c467765ffef86"></a>
std::vector&lt; <a class="el" href="structsimple__schedule_1_1thread__info__t.html">thread_info_t</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>thread_map</b></td></tr>
<tr class="separator:a1c6f1b93365dc324a72c467765ffef86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_schedule"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_schedule')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_schedule.html">Schedule</a></td></tr>
<tr class="memitem:ad248e99611a87776fb411836cd46a603 inherit pro_attribs_class_schedule"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_system_signal_handler.html">SystemSignalHandler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_schedule.html#ad248e99611a87776fb411836cd46a603">handlers</a></td></tr>
<tr class="separator:ad248e99611a87776fb411836cd46a603 inherit pro_attribs_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a448b0d48e656f94db65a70cedd8eed inherit pro_attribs_class_schedule"><td class="memItemLeft" align="right" valign="top">kernelkeeper &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_schedule.html#a1a448b0d48e656f94db65a70cedd8eed">kernel_set</a></td></tr>
<tr class="separator:a1a448b0d48e656f94db65a70cedd8eed inherit pro_attribs_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4c895eb77d8287a9a19215cced7af7b inherit pro_attribs_class_schedule"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4c895eb77d8287a9a19215cced7af7b"></a>
kernelkeeper &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>source_kernels</b></td></tr>
<tr class="separator:ad4c895eb77d8287a9a19215cced7af7b inherit pro_attribs_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebf2c26334eae760032d82a016898043 inherit pro_attribs_class_schedule"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aebf2c26334eae760032d82a016898043"></a>
kernelkeeper &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>dst_kernels</b></td></tr>
<tr class="separator:aebf2c26334eae760032d82a016898043 inherit pro_attribs_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_class_schedule"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_schedule')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_schedule.html">Schedule</a></td></tr>
<tr class="memitem:acf28b4a4231e693585751a035873615c inherit pub_static_methods_class_schedule"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_schedule.html#acf28b4a4231e693585751a035873615c">kernelRun</a> (<a class="el" href="classraft_1_1kernel.html">raft::kernel</a> *const kernel, volatile bool &amp;finished, jmp_buf *gotostate=nullptr, jmp_buf *kernel_state=nullptr)</td></tr>
<tr class="separator:acf28b4a4231e693585751a035873615c inherit pub_static_methods_class_schedule"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a25bafe4199780c7abda6a9df3a599d88"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">simple_schedule::simple_schedule </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_map.html">Map</a> &amp;&#160;</td>
          <td class="paramname"><em>map</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>simpleschedule.cpp - </p><dl class="section author"><dt>Author</dt><dd>: Jonathan Beard </dd></dl>
<dl class="section version"><dt>Version</dt><dd>: Thu Sep 11 15:49:57 2014</dd></dl>
<p>Copyright 2014 Jonathan Beard</p>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:</p>
<p><a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aafebb0cc13b4539387790ff54ea40830"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void simple_schedule::handleSchedule </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classraft_1_1kernel.html">raft::kernel</a> *const&#160;</td>
          <td class="paramname"><em>kernel</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>thread function takes a reference back to the scheduler accessible done boolean flag, essentially when the kernel is done, it can be rescheduled...and this handles that.</p>
<p>thread</p>
<p>no attributes</p>
<p>function </p>

<p>Implements <a class="el" href="class_schedule.html">Schedule</a>.</p>

</div>
</div>
<a class="anchor" id="ad60a7608111e011d0c04f6ac566cfd8c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void simple_schedule::start </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>start - called to start execution of all kernels. Implementation specific so it is purely virtual. </p>
<p>set up data struct for threads</p>
<p>thread</p>
<p>no attributes</p>
<p>function</p>
<p>FIXME: the list could get huge for long running apps, need to delete these entries...especially since we have a lock on the list now</p>

<p>Implements <a class="el" href="class_schedule.html#ab6ad5540ecdef6b472b4e8242a47c4ee">Schedule</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="simpleschedule_8hpp_source.html">simpleschedule.hpp</a></li>
<li>simpleschedule.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>
